import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 苏西西
 * Date: 2023-11-01
 * Time: 10:56
 */

//面试题
    //welcome to world
    //come
    //wl t wrld
public class Test2 {
    public List<List<Integer>> generate(int numRows){
        //返回 List<List<Integer>> 类型。如何进行实例化？
        //直接将List<List<Integer>> 实例化为ArrayList就可以。
        //这样就相当于数组中的每个元素放的也是ArrayList
        List<List<Integer>> ret = new ArrayList<>();
        //每一行是一个List，第一行的list可以先申请出来
        //这一行只有一个元素是1
        //将这个元素添加到数组当中的0下标的位置上
        List<Integer> row = new ArrayList<>();
        row.add(1);
        ret.add(row);
        //第一行有了，下面我们要从第二行开始,下标从1开始，
        for (int i = 1; i < numRows; i++) {
            List<Integer> prevRow = ret.get(i-1);

            List<Integer> curRow  = new ArrayList<>();
            curRow.add(1);//第一个1
            //中间list的赋值
            for(int j = 1; j < i; j++){
                int x = prevRow.get(j) + prevRow.get(j-1);
                curRow.add(x);

            }
            curRow.add(1);//最后一个1
            ret.add(curRow);
        }
        return ret;
    }

//    public List<List<Integer>> generate(int numRows){
//        List<List<Integer>> ret = new ArrayList<>();
//
//        List<Integer> row = new ArrayList<>();
//        row.add(1);
//
//        ret.add(row);
//        for (int i = 1; i < numRows; i++) {
//            List<Integer> prevRow = ret.get(i-1);//前一行
//            List<Integer> curRow = new ArrayList<>();
//            curRow.add(1);//第一个1
//            //中间curRow list的赋值
//
//            for(int j = 1; j < i ;j++){
//                int x = prevRow.get(j) +prevRow.get(j-i);
//                curRow.add(x);
//            }
//            curRow.add(1);//最后一个1
//
//            ret.add(curRow);
//        }
//        return ret;
//    }

    public static void main5(String[] args) {
        //首先定义一个数组，因为这里是字符，所以用到的是character;
        ArrayList<Character> list = new ArrayList<>();
        //定义两个字符串，用于存储题目中给定的两个字符串
        String s1 = "welcome to world";
        String s2 = "come";
        for (int i = 0; i < s1.length(); i++) {
            char ch = s1.charAt(i);
            if(!s2.contains(ch+"")){
                list.add(ch);
            }
        }
        for (int i = 0; i < list.size(); i++) {
            System.out.print(list.get(i));
        }
    }
    public static void main4(String[] args) {
        ArrayList<Character> list = new ArrayList<>();
        String s1 = "welcome to world";
        String s2 = "come";
        for (int i = 0; i < s1.length(); i++) {
            char ch = s1.charAt(i);
            if(!s2.contains(ch+"")){
                list.add(ch);
            }
        }
        for (int i = 0; i < list.size(); i++) {
            System.out.print(list.get(i));
        }
    }


    public static void main3(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        String s1 = "welcome to world";
        String s2 = "come";
        for (int i = 0; i < s1.length(); i++) {
            char ch = s1.charAt(i);
            if(!s2.contains(ch+"")){
                list.add(String.valueOf(ch));
            }
        }
        for (int i = 0; i <list.size() ; i++) {
            System.out.print(list.get(i));
        }
    }
    public static void main2(String[] args) {
        ArrayList<Character> characters = new ArrayList<>();
        String s1= "welcome to world";
        String s2 = "come";
        for (int i = 0; i < s1.length(); i++) {
            char ch = s1.charAt(i);
            if(!s2.contains(ch+"")){
                characters.add(ch);
            }
        }
        for (int i = 0; i < characters.size(); i++) {
            System.out.print(characters.get(i));

        }
    }
    //使用数组做题：
    //1.首先定义两个数组，分别存放原始的内容和需要删除的内容
    public static void main1(String[] args) {
        ArrayList<Character> list = new ArrayList<>();
        String s1 = "welcome to world";
        String s2 = "come";
        for (int i = 0; i < s1.length(); i++) {
            char ch = s1.charAt(i);
            if(!s2.contains(ch+"")){
                list.add(ch);
            }
        }
        for (int i = 0; i < list.size(); i++) {
            System.out.print(list.get(i));
        }
    }
}
